<%-- 
  -- Body New para Collect.
  --
  -- @author nicolas.gonzalez
--%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/struts-html-el-1.2.8.tld" prefix="html-el"%>
<%@ taglib uri="/WEB-INF/struts-logic-el-1.2.8.tld" prefix="logic-el"%>
<%@ taglib uri="/WEB-INF/security.tld" prefix="security" %>

<%@ taglib uri="http://struts.apache.org/tags-bean-el" prefix="bean2"%>

<script src="<html:rewrite page='/protected/script/util.js'/>" type="text/javascript"></script>

<%-- Para EXT --%>
<link rel="stylesheet" type="text/css" href="<html:rewrite page='/protected/script/ext-1.1.1/resources/css/ext-all.css'/>" />
<script src="<html:rewrite page='/protected/script/ext-1.1.1/adapter/ext/ext-base.js'/>" type="text/javascript"></script>
<script src="<html:rewrite page='/protected/script/ext-1.1.1/ext-all.js'/>" type="text/javascript"></script>


<div class="errors">
    <html:errors />
</div>


<script type="text/javascript">
    /* Pide confirmacion
     */
    var preCollect = function() {
        Ext.MessageBox.confirm('Confirmar', 'Seguro de registrar el cobro?', postCollect);
    }
    
    
   /** Post invocacion de la eliminacion de usuario. */    
    var postCollect = function(btn)  {
        if (btn == "yes") {
            // Se quiere registrar el cobro
            createCollect();
        }
    }
    
     /** Crea un cobro
      * En el form de Struts se valida q porcentaje y valor no pueden
      * ser simultaneamente nulos. 
      */
    var createCollect = function() {
        if (Util.valid.isBlank($("valueId").value)) {
            Ext.MessageBox.alert('Error', 'Debe ingresar valor. ');
            return;
        }
        else {
            if (isNaN($("valueId").value)) {
                Ext.MessageBox.alert('Error', 'Valor debe ser valido. Verifiquelo. ');
                return;
            }        
        }
        
        if (Util.valid.isBlank($("reasonId").value)) {
            Ext.MessageBox.alert('Error', 'Debe ingresar motivo/descripcion. Verifiquelo. ');
            return;
        }
        if (Util.valid.isBlank($("codeId").value)) {
            Ext.MessageBox.alert('Error', 'Debe ingresar codigo. Verifiquelo. ');
            return;
        }
	
		// Puede no estar accountMaximumAvailableId si no hay disponible. Por eso contra null se compara....
        if ( ($("accountMaximumAvailableId") != null) && ($("accountMaximumAvailableId").value != "-1") && ($("accountMaximumAvailableId").value != "")) {
            if (isNaN($("accountMaximumAvailableId").value)) {
                Ext.MessageBox.alert('Error', 'Disponible a usar debe ser valido. Verifiquelo. ');
                return;
            }
            else {
                // Se cargo entonces lo uso
                $("accountMaximumAvailableCreateId").value = $("accountMaximumAvailableId").value;         
            }
        }
        else {
            // No hay disponible entonces mando -1 para q NO se use...
            $("accountMaximumAvailableCreateId").value = "-1";
        }     
        
        // El combo        
        var collectTypeSelectedObj = $("collectTypeSelectedId");
        var collectTypeSelectedValue = collectTypeSelectedObj.options[collectTypeSelectedObj.selectedIndex].value;
           
        // Cargo el resto.
        $("debtIdCreateId").value = $("debtId").value;
        $("collectTypeSelectedCreateId").value = collectTypeSelectedValue;
        $("reasonCreateId").value = $("reasonId").value;
        $("valueCreateId").value = $("valueId").value;
        $("customerIdCreateId").value = $("debtCustomerIdId").value;
        $("courseSelectedCreateId").value = $("courseSelectedId").value;
        $("codeCreateId").value = $("codeId").value;
    
        var form = $("createCollectFormId");
        form.submit();
    } 
    
    /* Vuelve a buscar las deudas por cobrar aplicando los criterios
     * anteriores que fueron arrastrados
     */
    var findAgain = function() {
       $("customerIdFindId").value = $("customerId").value;
       $("courseSelectedFindId").value = $("courseSelectedId").value;
       
        var form = $("findDebtsToCollectFormId");
        form.submit();
    } 
    
    
    // Decora los titles de HTML. Lo hace mas lindo, pero mas pesado...
    Ext.QuickTips.interceptTitles = true;
    Ext.QuickTips.init();
</script>

<%-- El ID del form NO debe ser modificado. Se usa desde el menu --%>
<html:form action="/protected/prepareCollect" styleId="collectFormId">

    <html:hidden property="debtId" styleId="debtId" />
    <%-- Hay un 
            debtCustomerId  -> Sacado del cliente de la deuda seleccionada para cobrar.
        y un 
            customerId      -> Sacado de la pantalla de busqueda de deudas para cobrar.
     --%>
    <html:hidden property="debtCustomerId" styleId="debtCustomerIdId" />
    
    <%-- Los arrastro para pasarlo... Vienen desde la pantalla de busqueda de deudas para cobrar --%>    
    <html:hidden property="customerId" styleId="customerId" />
    <html:hidden property="courseSelected" styleId="courseSelectedId" />

    <h2>Cobro</h2>
    
    <div class="collectEdit">
        <table class="tableDataCollect" cellspacing="0">
            <tr>
                <td class="tableDataTitle">
                    Participante
                </td>
                <td class="tableDataValue">
                    <html:text property="studentInformation" readonly="true" size="50" title="Informacion del participante. Verifique este campo antes de confirmar ..." />
                </td>            
            </tr>
            <tr>
                <td class="tableDataTitle">
                    Curso
                </td>
                <td class="tableDataValue">
                    <html:text property="courseInformation" readonly="true" size="40" title="Informacion del curso ..." />
                </td>            
            </tr>
            <tr>
                <td class="tableDataTitle">
                    Cliente
                </td>
                <td class="tableDataValue">
                    <html:text property="customerInformation" readonly="true" size="40" title="Informacion del cliente. Verifique este campo antes de confirmar ..." />
                </td>            
            </tr>
            <tr>
                <td class="tableDataTitle">
                    Saldo original
                </td>
                <td class="tableDataValue">
                    <html:text property="debtOriginalBalance" styleId="debtOriginalBalanceId" readonly="true" title="Saldo original de la deuda. Sera distinto al saldo cuando se haya pagado parte de una deuda o cuando corran descuentos y/o beneficios ..." />
                </td>            
            </tr>
            <tr>
                <td class="tableDataTitle">
                    Desc. y/o Benef.
                </td>
                <td class="tableDataValue">
                    <html:text property="debtDiscAndBenefDescription" size="50" styleId="debtDiscAndBenefDescriptionId" readonly="true" title="Si se aplico anteriormente para una deuda no saldada en su totalidad entonces no aplica ..." />
                </td>            
            </tr>
            <tr>
                <td class="tableDataTitle">
                    Disponible en Cta Cte
                </td>
                <td class="tableDataValue" style="font-weight: normal;">
                    <logic:equal name="collectForm" property="accountMaximumAvailableLabel" value="0">
                        No tiene disponible en la cta cte.
                    </logic:equal>
                    <logic:notEqual name="collectForm" property="accountMaximumAvailableLabel" value="0">
                        ${collectForm.accountMaximumAvailableLabel}
                    </logic:notEqual>                        
                </td>            
            </tr>
            <%-- Se muestra el campo si y solo si tiene disponible. --%>            
            <logic:notEqual name="collectForm" property="accountMaximumAvailableLabel" value="0">
                <tr>
                    <td class="tableDataTitle">
                        A usar de disponible
                    </td>
                    <td class="tableDataValue">
                        <html:text property="accountMaximumAvailable" styleId="accountMaximumAvailableId" title="Es lo maximo a utilizar que esta disponible en la cta cte del cliente. No se permite que se use mas que lo que indica 'Disponible en Cta Cte' ..." />
                    </td>            
                </tr>
            </logic:notEqual>
            <%-- Si no tiene entonces dejo un hidden --%>
<%--            
			<logic:equal name="collectForm" property="accountMaximumAvailableLabel" value="0">
                

                 <html:hidden property="accountMaximumAvailable" styleId="accountMaximumAvailableId" value="-1"/> 

            </logic:equal>
            --%>
            <tr>
                <td class="tableDataTitle">
                    Valor a cobrar
                </td>
                <td class="tableDataValue">
                    <html:text property="value" styleId="valueId" title="Ingrese el importe a cobrar. El valor que aparece la primera vez es el saldo de la deuda ..." />
                </td>            
            </tr>
            <tr>
                <td class="tableDataTitle">
                    Tipo de cobro
                </td>
                <td class="tableDataValue">
                    <html:select property="collectTypeSelected" styleClass="allSelects" styleId="collectTypeSelectedId" >
                        <html:optionsCollection property="collectTypeOptions"/>
                    </html:select>
                </td>            
            </tr>
            <tr>
                <td class="tableDataTitle">
                    Codigo
                </td>
                <td class="tableDataValue">
                    <html:text property="code" styleId="codeId" title="Ingrese un codigo ..." />
                </td>            
            </tr>
            <tr>
                <td class="tableDataTitle">
                    Motivo/Desc
                </td>
                <td class="tableDataValue">
                    <html:text property="reason" styleId="reasonId" title="Ingrese un motivo o descripcion ..." />
                </td>            
            </tr>
        </table>
        
        <br/>
        
        <%-- No se valida seguridad ya que SOLO entran aca los q tienen permiso --%>
        <div class="panelButton">
            <input type="button" value="Confirmar" onclick="preCollect();" title="Confirma el cobro ..." class="button">
            <input type="button" value="Volver" onclick="findAgain();" title="Vuelve a Deudas a Cobrar aplicando los mismos criterios elegidos anteriormente ..." class="button">
        </div>  
    
    </div>

</html:form>

<%-- Inyectados por Javascript --%>
<div id="createDivId" class="hideClass">
    <html:form action="/protected/createCollect" styleId="createCollectFormId">
        <html:hidden property="debtId" value="" styleId="debtIdCreateId" />
        <html:hidden property="collectTypeSelected" value="" styleId="collectTypeSelectedCreateId" />
        <html:hidden property="reason" value="" styleId="reasonCreateId" />
        <html:hidden property="accountMaximumAvailable" value="" styleId="accountMaximumAvailableCreateId" />
        <html:hidden property="value" value="" styleId="valueCreateId" />
        <html:hidden property="customerId" styleId="customerIdCreateId" />
        <html:hidden property="courseSelected" styleId="courseSelectedCreateId" />
        <html:hidden property="code" styleId="codeCreateId" />
    </html:form>
</div>

<div id="findDivId" class="hideClass">
    <html:form action="/protected/findDebtsToCollect" styleId="findDebtsToCollectFormId">
        <html:hidden property="customerId" value="" styleId="customerIdFindId" />
        <html:hidden property="courseSelected" value="" styleId="courseSelectedFindId" />
    </html:form>
</div>